【发布时间】:2020-08-06 20:49:57
【问题描述】:
我正在学习 remix 的稳定性。 我在 youtube 上关注一些教程视频,但我一直在尝试建立 2 个合同。 合约 ERC20Token 具有增加余额的功能。 Mycontract 实例化并调用 mint 函数。我的做法和 youtube 上的那个人一样,但是当我调用 buyToken 函数时我遇到了错误。错误是说
交易到 MyContract.buyToken 出错:VM 错误:还原。
revert 交易已经恢复到初始状态。
注意:如果您发送值并且您发送的值应该小于您当前的余额,则调用的函数应该是应付的。调试事务以获取更多信息。
请帮帮我。
这里是代码。
pragma solidity 0.5.1;
contract ERC20Token{
string public name;
mapping(address => uint256) public balances;
function mint() public {
balances[tx.origin] ++;
}
}
contract MyContract {
address payable wallet;
address public token;
constructor(address payable _wallet, address _token) public {
wallet = _wallet;
token = _token;
}
function buyToken() public payable {
ERC20Token _token = ERC20Token(address(token));
_token.mint();
wallet.transfer(msg.value);
}
}
【问题讨论】:
-
这个评论有点晚了,你在调用buyToken的时候是在发送以太币吗?
标签: blockchain ethereum solidity remix