Web3.py: parsimonious.exceptions.VisitationError: TypeError

46 views Asked by At

hope someone can help me.

i want to read the nonce (transaction count) and balance for a polygon wallet with web3 package 6.10 and phyton 3.11. get_transaction_count isnt working but the other simple functions work, so it could successfully etablish a connection to the rpc node.

from web3 import Web3
from web3.gas_strategies.time_based import slow_gas_price_strategy

# Configure Web3 to connect to the Polygon
rpc_url = "https://polygon-mainnet.infura.io/v3/{Key}"
account = "0x..."

web3 = Web3(Web3.HTTPProvider(rpc_url))
web3.middleware_onion.inject(geth_poa_middleware, layer=0)

...

if __name__ == "__main__":
    latest_block = web3.eth.get_block('latest') #works

    print(f"chainId: {web3.eth.chain_id}") #works

    print(f"The latest block number is:{web3.eth.block_number}") #works

    res = web3.is_connected()
    print(f"connected: {res}") #works

    is_address_valid = web3.is_address(account)
    print(f"valid address {account}: {res}") #works

    nonce = web3.eth.get_transaction_count(web3.to_checksum_address(account)) #fails
    print(f"nonce {account}")

With Phyton 3.10 and Goerli Etherum it workes but on Polygon and 3.11 it says:

  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\web3\eth\eth.py", line 451, in get_transaction_count
    return self._get_transaction_count(account, block_identifier)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\web3\module.py", line 64, in caller
    (method_str, params), response_formatters = method.process_params(
                                                ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\web3\method.py", line 233, in process_params
    _apply_request_formatters(params, self.request_formatters(method)),
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\eth_utils\functional.py", line 45, in inner
    return callback(fn(*args, **kwargs))
                    ^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\web3\method.py", line 55, in _apply_request_formatters
    formatted_params = pipe(params, request_formatters)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "cytoolz\\functoolz.pyx", line 680, in cytoolz.functoolz.pipe
  File "cytoolz\\functoolz.pyx", line 655, in cytoolz.functoolz.c_pipe
  File "cytoolz\\functoolz.pyx", line 518, in cytoolz.functoolz.Compose.__call__
  File "cytoolz\\functoolz.pyx", line 263, in cytoolz.functoolz.curry.__call__
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\web3\_utils\abi.py", line 746, in map_abi_data
    return pipe(data, *pipeline)
           ^^^^^^^^^^^^^^^^^^^^^
  File "cytoolz\\functoolz.pyx", line 680, in cytoolz.functoolz.pipe
  File "cytoolz\\functoolz.pyx", line 655, in cytoolz.functoolz.c_pipe
  File "cytoolz\\functoolz.pyx", line 263, in cytoolz.functoolz.curry.__call__
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\web3\_utils\abi.py", line 760, in abi_data_tree
    return [
           ^
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\web3\_utils\abi.py", line 761, in <listcomp>
    abi_sub_tree(data_type, data_value)
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\web3\_utils\abi.py", line 814, in abi_sub_tree
    abi_type = parse(type_str_or_abi_type)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\eth_abi\grammar.py", line 123, in parse
    return super().parse(type_str, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\parsimonious\nodes.py", line 252, in parse
    return self._parse_or_match(text, pos, 'parse')
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\parsimonious\nodes.py", line 287, in _parse_or_match
    return self.visit(getattr(self.grammar, method_name)(text, pos=pos))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\parsimonious\nodes.py", line 213, in visit
    return method(node, [self.visit(n) for n in node])
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\parsimonious\nodes.py", line 213, in <listcomp>
    return method(node, [self.visit(n) for n in node])
                         ^^^^^^^^^^^^^
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\parsimonious\nodes.py", line 213, in visit
    return method(node, [self.visit(n) for n in node])
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\parsimonious\nodes.py", line 213, in <listcomp>
    return method(node, [self.visit(n) for n in node])
                         ^^^^^^^^^^^^^
  File "C:\Users\User\PycharmProjects\Project\venv_311\Lib\site-packages\parsimonious\nodes.py", line 225, in visit
    raise VisitationError(exc, exc_class, node) from exc
parsimonious.exceptions.VisitationError: TypeError: isinstance() arg 2 must be a type, a tuple of types, or a union
0

There are 0 answers