Web3 版本:5.12.2 Python:3.7 操作系统:Mac
我尝试使用以下简单代码创建合约实例:
from web3 import Web3
import json
BSC_PRC='https://bsc-dataseed.binance.org/'
w3=Web3(Web3.HTTPProvider(BSC_PRC))
#pancakeswap router
panRouterContractAddress = '0x10ED43C718714eb63d5aA57B78B54704E256024E'
#pancakeswap router abi
panabi = json.loads('[{"i..]')
contract2=w3.eth.contract(address=panRouterContractAddress,abi=panabi)
但是出现以下错误,任何人都可以提出建议,谢谢
The full output of the error
Run above code, error come out:
Traceback (most recent call last):
File "/Users/treeson/PycharmProjects/bsc_monitor/bsc_mon/web3/web3_test1.py", line 11, in
contract2=w3.eth.contract(address=panRouterContractAddress,abi=panabi)
File "/Users/treeson/bsc_monitor/lib/python3.7/site-packages/web3/eth.py", line 544, in contract
ContractFactory = ContractFactoryClass.factory(self.web3, **kwargs)
File "/Users/treeson/bsc_monitor/lib/python3.7/site-packages/web3/contract.py", line 355, in factory
'address': partial(normalize_address, kwargs['web3'].ens),
File "/Users/treeson/bsc_monitor/lib/python3.7/site-packages/web3/main.py", line 268, in ens
return ENS.fromWeb3(self)
File "/Users/treeson/bsc_monitor/lib/python3.7/site-packages/ens/main.py", line 102, in fromWeb3
return cls(web3.manager.provider, addr=addr)
File "/Users/treeson/bsc_monitor/lib/python3.7/site-packages/ens/main.py", line 90, in init
self.ens = self.web3.eth.contract(abi=abis.ENS, address=ens_addr)
File "/Users/treeson/bsc_monitor/lib/python3.7/site-packages/web3/eth.py", line 544, in contract
ContractFactory = ContractFactoryClass.factory(self.web3, **kwargs)
File "/Users/treeson/bsc_monitor/lib/python3.7/site-packages/web3/contract.py", line 364, in factory
normalizers=normalizers,
File "/Users/treeson/bsc_monitor/lib/python3.7/site-packages/web3/_utils/datatypes.py", line 61, in new
return super().new(mcs, name, bases, processed_namespace)
TypeError: type.new() argument 3 must be dict, not generator