ERR:返回的值无效,是否耗尽 Gas?如果您没有为从中检索数据的合约使用正确的 ABI、从不存在的块号请求数据或查询未完全同步的节点,您也可能会看到此错误。
阿比:https://github.com/creed-victor/frontend-test/blob/main/WeenusTokenABI.json
const tokenAddress = "0x101848D5C5bBca18E6b4431eEdF6B95E9ADF82FA";
const web3Context = useWeb3(`wss://mainnet.infura.io/ws/v3/${infuraProjectId}`);
const { networkId, networkName, accounts, providerName, lib } = web3Context;
const web3 = new Web3(`wss://mainnet.infura.io/ws/v3/${infuraProjectId}`)
const weenusContract = new web3.eth.Contract(abi, tokenAddress);
const getTokenBalance = useCallback(async () => {
let tokenBalance = accounts && accounts.length > 0 ? await contract.methods.balanceOf(accounts[0]).call().then(receipt=> {return receipt}) : 'unknown';
setTokenBalance(tokenBalance);
}, [accounts])
useEffect(()=>{
getTokenBalance();
}, [accounts, getTokenBalance])
合同没有响应函数调用。是阿比吗?有没有办法替代 abi 或改进它?
答案 0 :(得分:0)
更改了 const web3 = new Web3(
wss://mainnet.infura.io/ws/v3/${infuraProjectId})
到const web3 = new Web3(window.ethereum)