到目前为止,我已经成功地使用了ethers.js的版本5,现在我正在将我的代码库迁移到版本6。
我尝试了下面的代码来调用智能契约上的一个方法,该方法应该返回一个对象数组,但它无法工作:
const web3Provider = new ethers.BrowserProvider(
metamaskProvider as any
);
const signer = await web3Provider.getSigner();
const contract = new ethers.Contract(address, abi, signer);
const res = await contract.myContractMethod();发布于 2023-02-08 18:25:48
看看这个话题。
这是一个非常类似的问题,结果是来自ethers.js 6的一个bug。它仍然是测试版而不是官方版本,所以它也可能包含其他的bug。我认为最好保留旧版本,至少在他们发布版本6的稳定颠覆之前是这样。
发布于 2023-03-20 16:14:28
是的,这有点奇怪,对开发人员也不太友好,下面是您如何获得合同并打印所有功能的方法
const contract = new ethers.Contract(CONTRACT_ADDRESS,CONTRACT_ABI,signer)
console.log("FUNCTIONS", contract.interface.forEachFunction((f)=>console.log(f)))发布于 2023-05-04 11:34:43
await contract.getFunction("FUNCTION_NAME").call(null);这可能对ehters js 6有帮助。
如果存在调用参数,请考虑可以用表示调用参数的对象替换null。
https://ethereum.stackexchange.com/questions/144557
复制相似问题