Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 web3 method
#1
installed web3 api and cannot get it recognized.
from web3 import Web3
nonce = web3.eth.getTransactionCount(acct1)
error = instance of 'Web3' has no 'eth' member
buran wrote Jun-04-2019, 03:35 PM:
Please, use proper tags when post code, traceback, output, etc. This time I have added tags for you.
See BBcode help for more info.

Please, post the entire traceback that you get. We need to see the whole thing. Do not just give us the last line.
Take a time to read What to include in a post
Quote
#2
I guess your own file is named web3.py, right? Because otherwise you will get NameError. Note that you import Web3 (with capital W) from web3 (with lower w). Then in your code you use web3 (with lower w and it is not imported)
Quote
#3
file name is contract.py

from web3 import Web3
#from solc import compile_source
#from web3.contract import ConciseContract
#from web3.auto import Web3, EthereumTesterProvider

# code here
ganache_url = "http://127.0.0.1:7545"
web3 = Web3(Web3.HTTPProvider(ganache_url))

acct1 = "REMOVED"
acct2 = "REMOVED"

private_key = "REMOVED"

nonce = web3.eth.getTransactionCount(acct1)

tx = {
    'nonce': nonce,
    'to'   : acct2,
    'value': web3.toWei(1, 'ether'),
    'gas'  : 2000000,
    'gasPrice': web3/toWei('50', 'gwei')
}

signed_tx = web3.eth.account.signTransaction(tx, private_key)
tx_hash   = web3.eth.sendRawTransaction(signed_tx.sendRawTransaction)
print(tx_hash)
Quote
#4
I think the problem is you use web3 as variable name and it conflicts with the module name. use something different, e.g. w3.
That said, I am not sure when you want to use Web3 instance and when web3.eth. Docs is also bit confusing in this respect, e.g. Web3.eth redirects to wb3.eth
Quote

Top Page

Forum Jump:


Users browsing this thread: 1 Guest(s)