Skip to content

Infura not working on Contract Contructor() include eth.send_raw_transaction suggestion? #2155

@Gresliebear

Description

@Gresliebear
  • Version: x.x.x
  • Python: 3.9
  • OS: Windows 10
  • pip freeze output
[2021-09-18 23:10:53,398] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
  File "e:\openvesselfin\jubilant-market\pythonserver\vessel_env\lib\site-packages\flask\app.py", line 2070, in wsgi_app
    response = self.full_dispatch_request()
  File "e:\openvesselfin\jubilant-market\pythonserver\vessel_env\lib\site-packages\flask\app.py", line 1515, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "e:\openvesselfin\jubilant-market\pythonserver\vessel_env\lib\site-packages\flask\app.py", line 1513, in full_dispatch_request
    rv = self.dispatch_request()
  File "e:\openvesselfin\jubilant-market\pythonserver\vessel_env\lib\site-packages\flask\app.py", line 1499, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
  File "E:\OpenVesselFin\jubilant-market\PythonServer\wsgi.py", line 92, in index
    tx_hash = Greeter.constructor().transact()
  File "e:\openvesselfin\jubilant-market\pythonserver\vessel_env\lib\site-packages\eth_utils\decorators.py", line 18, in _wrapper
    return self.method(obj, *args, **kwargs)
  File "e:\openvesselfin\jubilant-market\pythonserver\vessel_env\lib\site-packages\web3\contract.py", line 663, in transact
    return self.web3.eth.send_transaction(transact_transaction)
  File "e:\openvesselfin\jubilant-market\pythonserver\vessel_env\lib\site-packages\web3\eth.py", line 686, in send_transaction
    return self._send_transaction(transaction)
  File "e:\openvesselfin\jubilant-market\pythonserver\vessel_env\lib\site-packages\web3\module.py", line 57, in caller
    result = w3.manager.request_blocking(method_str,
  File "e:\openvesselfin\jubilant-market\pythonserver\vessel_env\lib\site-packages\web3\manager.py", line 187, in request_blocking
    return self.formatted_response(response,
  File "e:\openvesselfin\jubilant-market\pythonserver\vessel_env\lib\site-packages\web3\manager.py", line 168, in formatted_response
    raise ValueError(response["error"])
ValueError: {'code': -32601, 'message': 'The method eth_sendTransaction does not exist/is not available'}```

What was wrong?

I am calling the infura API and would like to use the Contract.constructor().transact() but it uses eth.send_transaction(transact_transaction) which for infurai doesn't work instead I have to use Eth,send_raw_transaction(raw_transaction). I am going to change to local host solution but I don't know how to implement a pull request for including eth.send_raw_transaction to the constructor() decorator

image

How can it be fixed?

Fill this section in if you know how this could or should be fixed.

I think including the if statement passes the key to check if was signed, or just past the transaction object after it has been signed. or write a new function to check that transaction has been signed or not. I don't know the code base well enough to implement this. However I need to move on in a hackathon so I have to figure out local host. because the only reason I am using Contract Contructor is to access Solidity code through python.

I know you have no reason to follow through on this but I think this will be essential for multi-key signs so know not depending on a single person to local host or sign transactions off

image


Note: We prefer to use issues to track our work. If you think you've encountered a bug in web3py or
have a feature request, you're in the right place. If you have implementation or usage questions,
please refer to our documentation and/or join the conversation
on discord.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions