-1

我正在使用 truffle 和 ganache 构建一个代币智能合约。我正在测试传递函数。代码在下图中

令牌.js

在我的 token.sol 文件中,我创建了一个函数名称传输

function transfer(address _to, uint _value) public {

当我使用命令“松露测试”运行测试时

它抛出此错误“无效地址(arg =”,coderType =“地址”,值= [0])”

请问我该如何解决这个问题。我认为它来自新的松露编译器,因为我在尝试使用命令 web3.eth.accounts 获取我的 ganache 中的帐户时也遇到了错误,我了解到它已被贬低。

4

1 回答 1

-1

几天前我遇到了同样的问题,我解决了这个问题

await token1.transfer(accountAddress, quantTokens1ToSend)

你的传输函数需要 2 个参数 _to 和 value,你不需要像你放的那样放 from,因为 from 地址将是 tokenInstance 合约地址,命名为 msg.sender 在solidity中,我建议也放tokenInstance.transfer 之前的 await 关键字,因为它是一个承诺,您必须在返回之前等待它的结果(这不是规则,但我推荐)

在这种情况下,调用智能合约的推荐方式可能是:

await tokenInstance.transfer(accounts[0], '250000')

于 2021-07-06T04:34:24.210 回答