useDapp 的 useContractCall 在 React 中抛出"Invalid contract call"



inReact组件我要读取函数"暂停"在上部署的合约Rinkebytestnet。使用useDapp(https://usedapp.io/) hook ">useContractCall我在自定义钩子中调用契约函数:

import { ethers } from "ethers";
import { useContractCall } from "@usedapp/core";
import { contractAddress } from '../../index.js'
const iface = new ethers.Interface([
"function paused()"
]);
export function usePaused() {
const [paused] = useContractCall({
abi: iface,
address: contractAddress,
method: 'paused',
args: [],
}) ?? [];
return paused;
}

抛出错误TypeError: ethers__WEBPACK_IMPORTED_MODULE_0__.ethers.utils.Interface is not a constructor

当代替

const iface = new ethers.Interface([
"function paused()"
]);

我使用const iface = new ethers.Interface(abi);,我的自定义钩子仍然不工作,它抛出警告:

Invalid contract call: address=0x...contract_address... method=paused args= 
at RenderButton (http://localhost:3001/static/js/main.chunk.js:1961:70)

我做错了什么?我遵照了https://usedapp.readthedocs.io/en/latest/guide.html#custom-hooks上的说明。

我遇到过这个问题。

在我的例子中,react Webapp被设置为主网,但浏览器钱包在Rinkeby上。钱包网络改为主网后,问题就解决了。

相关内容

  • 没有找到相关文章

最新更新