I created a Web3 instance which connects to an infura rinkeby node. Building a transaction works unless I call web3.eth.generateGasPrice() to determine an appropriate gas price.
The same scenario, but instead of infura I used a local geth POA node (own network) and instead of websockets I used HTTPProvider(...), worked without problems
File "/home/sea212/gproject/swagger_server/controllers/admins_controller.py", line 78, in create_lottery
if not web3adapter.create(data):
File "/home/sea212/gproject/swagger_server/web3adapter/web3adapter.py", line 154, in create
"gasPrice": self._w3.eth.generateGasPrice()
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/contract.py", line 1228, in buildTransaction
**self.kwargs
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/contract.py", line 1512, in build_transaction_for_function
prepared_transaction = fill_transaction_defaults(web3, prepared_transaction)
File "cytoolz/functoolz.pyx", line 236, in cytoolz.functoolz.curry.__call__
File "cytoolz/functoolz.pyx", line 232, in cytoolz.functoolz.curry.__call__
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/transactions.py", line 55, in fill_transaction_defaults
default_val = default_getter(web3, transaction)
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/transactions.py", line 26, in <lambda>
'gas': lambda web3, tx: web3.eth.estimateGas(tx),
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/eth.py", line 304, in estimateGas
[transaction],
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/manager.py", line 109, in request_blocking
response = self._make_request(method, params)
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/manager.py", line 92, in _make_request
return request_func(method, params)
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/middleware/cache.py", line 385, in middleware
response = make_request(method, params)
File "cytoolz/functoolz.pyx", line 236, in cytoolz.functoolz.curry.__call__
File "cytoolz/functoolz.pyx", line 232, in cytoolz.functoolz.curry.__call__
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/middleware/formatting.py", line 50, in apply_formatters
response = make_request(method, params)
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/middleware/gas_price_strategy.py", line 18, in middleware
return make_request(method, params)
File "cytoolz/functoolz.pyx", line 236, in cytoolz.functoolz.curry.__call__
File "cytoolz/functoolz.pyx", line 232, in cytoolz.functoolz.curry.__call__
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/middleware/formatting.py", line 48, in apply_formatters
response = make_request(method, formatted_params)
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/middleware/attrdict.py", line 18, in middleware
response = make_request(method, params)
File "cytoolz/functoolz.pyx", line 236, in cytoolz.functoolz.curry.__call__
File "cytoolz/functoolz.pyx", line 232, in cytoolz.functoolz.curry.__call__
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/middleware/formatting.py", line 48, in apply_formatters
response = make_request(method, formatted_params)
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/middleware/normalize_errors.py", line 9, in middleware
result = make_request(method, params)
File "cytoolz/functoolz.pyx", line 236, in cytoolz.functoolz.curry.__call__
File "cytoolz/functoolz.pyx", line 232, in cytoolz.functoolz.curry.__call__
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/middleware/formatting.py", line 48, in apply_formatters
response = make_request(method, formatted_params)
File "cytoolz/functoolz.pyx", line 236, in cytoolz.functoolz.curry.__call__
File "cytoolz/functoolz.pyx", line 232, in cytoolz.functoolz.curry.__call__
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/middleware/formatting.py", line 47, in apply_formatters
formatted_params = formatter(params)
File "cytoolz/functoolz.pyx", line 236, in cytoolz.functoolz.curry.__call__
File "cytoolz/functoolz.pyx", line 232, in cytoolz.functoolz.curry.__call__
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/eth_utils/functional.py", line 46, in inner
return callback(fn(*args, **kwargs))
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/formatters.py", line 41, in apply_formatter_at_index
yield formatter(item)
File "cytoolz/functoolz.pyx", line 236, in cytoolz.functoolz.curry.__call__
File "cytoolz/functoolz.pyx", line 232, in cytoolz.functoolz.curry.__call__
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/rpc_abi.py", line 69, in apply_abi_formatters_to_dict
[data[field] for field in fields],
File "cytoolz/functoolz.pyx", line 236, in cytoolz.functoolz.curry.__call__
File "cytoolz/functoolz.pyx", line 232, in cytoolz.functoolz.curry.__call__
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/abi.py", line 442, in map_abi_data
return pipe(data, *pipeline)
File "cytoolz/functoolz.pyx", line 589, in cytoolz.functoolz.pipe
File "cytoolz/functoolz.pyx", line 565, in cytoolz.functoolz.c_pipe
File "cytoolz/functoolz.pyx", line 236, in cytoolz.functoolz.curry.__call__
File "cytoolz/functoolz.pyx", line 232, in cytoolz.functoolz.curry.__call__
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/abi.py", line 474, in data_tree_map
return recursive_map(map_to_typed_data, data_tree)
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/decorators.py", line 35, in wrapped
wrapped_val = to_wrap(*args)
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/formatters.py", line 115, in recursive_map
items_mapped = map_collection(recurse, data)
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/formatters.py", line 102, in map_collection
return datatype(map(func, collection))
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/formatters.py", line 114, in recurse
return recursive_map(func, item)
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/decorators.py", line 35, in wrapped
wrapped_val = to_wrap(*args)
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/formatters.py", line 116, in recursive_map
return func(items_mapped)
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/abi.py", line 471, in map_to_typed_data
return ABITypedData(func(*elements))
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/normalizers.py", line 50, in wrapper
modified = to_wrap(abi_type, data)
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/normalizers.py", line 104, in abi_int_to_hex
return abi_type, hexstr_if_str(to_hex, data)
File "cytoolz/functoolz.pyx", line 236, in cytoolz.functoolz.curry.__call__
File "cytoolz/functoolz.pyx", line 232, in cytoolz.functoolz.curry.__call__
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/web3/utils/encoding.py", line 213, in hexstr_if_str
return to_type(primitive, hexstr=hexstr)
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/eth_utils/decorators.py", line 75, in wrapper
return to_wrap(*args, **kwargs)
File "/home/sea212/.pyenv/versions/swagtest19/lib/python3.7/site-packages/eth_utils/conversions.py", line 41, in to_hex
"or int.".format(repr(type(primitive)))
TypeError: Unsupported type: '<class 'float'>'. Must be one of: bool, str, bytes, bytearrayor int.