我正在写一份合同,我想把钱转到一个账户地址,这个账户地址传递给合同中的一个函数。我取三个参数from、to和value。此外,我还添加了一个屏幕截图,以便更好地理解。 Error Screenshot
contract Transaction{
using SafeMath for uint256;
mapping(address => uint256) balances;
event Transfer(address buyer, address seller,uint value);
function _transfer(address _from, address payable _to, uint256 _value) internal {
require(balances[_from] >= _value, "Insufficient balance");
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(_from, _to, _value);
_to.transfer(_value);
}
function transfer(address _from,address payable _to, uint256 _value) external payable returns (bool) {
_transfer(_from, _to, _value);
return true;
}
}
错误:
交易对交易。传输错误:VM错误:还原
恢复 事务已恢复到初始状态。 合同提供的理由:“余额不足”。 调试事务以获取更多信息
请帮助我,我错在哪里
对于转账,您只需要接收地址,发件人地址为msg.sender,值为msg.value,应在气体限制字段下的值字段中提及,正确的功能如下:
附言:如果您想创建代币,您应该启动合同的总供应,最好遵循ERC20标准
相关问题 更多 >
编程相关推荐