typescript 将expectEvent与hardhat一起使用需要类型为“never”的参数

yhxst69z  于 2023-03-09  发布在  TypeScript
关注(0)|答案(2)|浏览(133)

当我和“安全帽”打电话时

const resp0 = await collateralPool.selfCloseExit(tokenShare0, true, TokenExitType.MINIMIZE_FEE_DEBT, "", { from: accounts[0] });

我知道它的类型是const resp0: Truffle.TransactionResponse<never>,现在当我想测试一个事件是否被触发时,我使用

expectEvent(resp0, "AgentRedemptionInCollateral", { _amountUBA: fassets0 });

但它告诉我参数“AgentRedemptionInCollateral”应该是never类型。如何修复此问题?expectEvent被导入为

import { expectEvent } from "@openzeppelin/test-helpers";

发出事件的函数位于另一个由collateralPool调用的契约中,这是否是一个问题?

cbwuti44

cbwuti441#

在网上搜索时,我发现其他人也在typescript中遇到了这个包的问题,我认为修复这个问题的最简单方法是添加// @ts-ignore或调用(expectEvent as any)(resp0, "AgentRedemptionInCollateral, { _amountUBA: fassets0 });之类的函数

c2e8gylq

c2e8gylq2#

问题似乎是该事件是通过最初调用的契约在不同的契约中触发的。使用方法expectEvent.inTransaction解决了该问题。

相关问题