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上。钱包网络改为主网后,问题就解决了。