5 使用encodeABI()来生成data的时候,出错:because web3 is not connected to mainnet

是想调用合约里的一个方法,之前试过调用另外一个方法可以,但这次调用就出错了,提示:

Could not look up name 'XXXXXXX' because web3 is not connected to mainnet

我搜了下是跟w3.eth.default_account有些关系?但还是搞不明白

附上这个函数的abi:

{
        "inputs": [
            {
                "internalType": "address",
                "name": "user",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "career",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "payAddr",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "tokenId",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "price",
                "type": "uint256"
            },
            {
                "internalType": "string",
                "name": "name",
                "type": "string"
            }
        ],
        "name": "sellPlayer",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    }

有大佬知道是怎么回事吗?谢谢!

Update: 我看了下报错的函数,最终发现是在这里报错的: 16395590061.png

我打印了w3.net.version看了下,发现就是chain id,代码这里要是1才可以,但chain id怎么改啊??

麻烦懂的大佬给下解答,谢谢!

请先 登录 后评论

最佳答案 2021-12-15 21:27

chainId 由你连接的 provider 确定的。

你的代码是在哪里执行的? 如果是前端执行的, provider 通常是钱包(Metamask)注入的,后端代码,你可以自己指定 provider

请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,3096 浏览
  • fusae_js@163.com 提出于 2021-12-15 08:48