【发布时间】:2021-12-15 13:43:08
【问题描述】:
我正在使用 BSC 的分支在安全帽网络上测试我的合约。
我正在部署具有铸币功能的代币合约:
// @dev Creates `_amount` token to `_to`. Must only be called by the owner (MasterChef).
function mint(address _to, uint256 _amount) public onlyOwner {
_mint(_to, _amount);
_moveDelegates(address(0), _delegates[_to], _amount);
}
然后我使用> npx hardhat test 将其部署在测试中,它将运行此代码的测试:
...
it("Should deploy", async () => {
token = await Token.deploy();
await token.deployed();
console.debug(`\t\t\tToken Contract Address: ${cyan}`, token.address);
const supply = await token.totalSupply()
console.debug(`\t\t\tToken totalSupply: ${yellow}`, supply);
await token.mint(owner.address, web3.utils.toWei("1000", 'ether'))
console.debug(`\t\t\tToken owner balance: ${cyan}`, token.balanceOf(owner.address));
});
...
测试打印前 2 个控制台调试正确:
Token Contract Address: 0x5FbDB2315678afecb367f032d93F642f64180aa3
Token totalSupply: 0
token.totalSupply() 也可以工作,因此令牌部署正确,但是当它必须调用 token.mint() 时会出现此错误:
TypeError: token.mint is not a function
at Context.<anonymous> (test/general.js:102:21)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
我试图清理所有运行 > npx hardhat clean 的工件并延迟所有缓存,但我仍然有错误
【问题讨论】:
-
mint()函数是您的合约集中contract Token或另一个合约(例如导入的库)的一部分吗? -
@PetrHejda
mint()是contract Token的一部分,如您所见,在mint()内部有_mint()是BEP20 导入合约的一部分,没有任何其他@ 987654335@函数
标签: blockchain solidity hardhat