未捕获(在promise中(错误:调用revert异常〔请参阅:https://links.ethers.org/v5-errors-CALL_EXCEPTION](方法="name((";,data=";0x";,errorArgs=null,errorName=null,errorSignature=null,原因=空,代码=CALL_EXCEPTION,版本=abi/5.7.0(
const provider = new ethers.providers.Web3Provider(window.ethereum);
const address = '0x6B175474E89094C44Da98b954EedeAC495271d0F'
const abi = [
"function name() view returns (string)",
"function symbol() view returns (string)",
"function totalSupply() view returns (uint256)"
]
const connectWallet = (async()=>{
await provider.send("eth_requestAccounts",[]);
})
const contract = new ethers.Contract(address,abi,provider);
const getInfo = (async()=>{
const n = await contract.name();
console.log(n)
})
我正在努力阅读合同,但为什么我会出现这个错误?我该怎么解决??
我收到了相同的错误消息。问题是我没有从本地主机的安全帽中部署它。在Metamask钱包中,您必须确保连接到正确的Hardhat本地主机网络。
只有在以太坊主网上的指定地址上部署了一个合约。但这个地址在其他网络上没有任何合同。
由于您使用的是MetaMask发布的window.ethereum
提供商或其他浏览器钱包扩展,因此呼叫将在钱包中当前选定的网络上发送。
因此,如果您选择以太坊主网,则调用成功。在所有其他情况下,呼叫都会失败,因为所选网络上没有可以响应呼叫的合同。