sto*_* TV 3 blockchain solidity hardhat
我正在使用 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);
}
Run Code Online (Sandbox Code Playgroud)
然后我将其部署到测试中> 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));
});
...
Run Code Online (Sandbox Code Playgroud)
测试正确打印前 2 个控制台调试:
Token Contract Address: 0x5FbDB2315678afecb367f032d93F642f64180aa3
Token totalSupply: 0
Run Code Online (Sandbox Code Playgroud)
也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)
Run Code Online (Sandbox Code Playgroud)
我尝试清理所有正在运行的工件> npx hardhat clean并删除所有缓存,但仍然有错误
小智 18
如果您声明了两个 mint 函数,那么您必须显式使用完全限定签名。例子:
token["mint(address,uint256)"](owner.address, web3.utils.toWei("1000", 'ether'))
Run Code Online (Sandbox Code Playgroud)
我在这里找到了解决方案 https://github.com/ethers-io/ethers.js/issues/407
| 归档时间: |
|
| 查看次数: |
5045 次 |
| 最近记录: |