如何使用wagmi的智能合约重载功能



所以我的solidity智能合约中有两个名称相同但参数不同的函数functionName(args1)functionName(args1, args2)

由于这种函数重载,智能合约的ABI有两个名称完全相同的函数,functionName有1个参数,functionName有2个参数

当我尝试使用wagmi useContractWrite调用第一个带有的函数时

const functionWrite = useContractWrite({
...ContractInstance,
functionName: 'functionName',
args: [args1],
});

或调用第二个功能

const functionWrite = useContractWrite({
...ContractInstance,
functionName: 'functionName',
args: [args1, args2],
});

由于名称重复,wagmi似乎没有检测到该功能,它给了我这个错误:'functionName' doesn't exist in interface for contract "{my contract address}"

有人知道如何使用wagmi的重载功能吗?

我一直在寻找这个,只是做了一些尝试和错误来找出它。自从我开始工作以来,我想我会回来给你和其他人一个答案。

const functionWrite = useContractWrite({
...ContractInstance,
functionName: 'functionName(arg1Type, arg2Type)',
args: [args1, args2],
});

这应该将函数签名传递给底层的ethers调用。

相关内容

  • 没有找到相关文章

最新更新