这是我第一次使用web3 api,所以我完全迷失了方向。我使用wagmi with function,试图调用智能契约中的函数:
const id = 1;
const index = 1;
const { data, error, isError, isLoading } = useContractRead({
address: "0xADDRESS",
abi: [(...){
inputs: [
{ internalType: "uint256", name: "id", type: "uint256" },
{ internalType: "uint256", name: "index", type: "uint256" },
],
name: "isClaimed",
outputs: [{ internalType: "bool", name: "", type: "bool" }],
stateMutability: "view",
type: "function",
},(...)],
functionName: "isClaimed",
args: [id, index],
});我得到IDE错误:“输入'number‘不能指定键入’BigNumber‘’”
如果我当时
const id = BigNumber.from(1);然后我从合同中得到了错误:
错误:调用Logger.makeError (index.ts:269:1) at Logger.throwError (index.ts:281:1) at Interface.decodeFunctionResult (interface.ts:427:1) at index.ts:400:1 at Generator.next () at Generator.next (index.ts:1:1)
我看了几本教程,读了一些关于它的文章,但仍然不知道问题出在哪里。Wagmi文档没有告诉我任何关于它的事情。ChatGPT和必应聊天都没有帮助。有人能帮忙吗?
编辑:附加信息?
我在我的App.txs里有这个:
const chains = [arbitrum, mainnet, polygon];
const projectId = "SOME_ID_OF_WALLETCONNECT_PROJECT_I_CREATED";
const { provider } = configureChains(chains, [w3mProvider({ projectId })]);
const wagmiClient = createClient({
autoConnect: true,
connectors: w3mConnectors({ projectId, version: 1, chains }),
provider,
});合同开发商说,连锁公司正在孟买测试多边形。我想我没有连接到正确的链子。
发布于 2023-05-09 11:41:34
您粘贴的错误似乎与描述无关。此错误显示您正在使用isClaimed(uint256,uint256)调用data=0x方法。也许您是在某个地方调用该方法,而不提供输入参数?
如果不看到代码的其余部分,很难说出来。
异常提供了以下链接:https://links.ethers.org/v5-errors-CALL_例外
如果尝试访问特定地址不存在的方法,则会发生这种类型的异常。一个非常常见的情况是,您尝试访问“正确的方法和正确的地址”,但在错误的网络。确保您只是试图在部署该方法的链中调用该契约方法。
https://ethereum.stackexchange.com/questions/150017
复制相似问题