如何解决如何将以太币从发件人帐户转移到具有特定值参数的给定帐户 - 智能合约
我正在编写一份合同,我想将资金转移到传递给合同中函数的帐户地址。我采用三个参数 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,uint256 _value) external payable returns (bool) {
_transfer(_from,_value);
return true;
}
}
错误:
还原 事务已恢复到初始状态。 合同规定的原因:“余额不足”。 调试事务以获取更多信息。
请帮助我哪里错了?
解决方法
对于转账,你只需要接收地址,发件人地址是msg.sender,值是msg.value,应该在Gas Limit字段下的value字段中提到,正确的功能如下:
function transfer(address payable _to) external payable returns (bool) {
_to.transfer( msg.value);
return true;
}
P.S:如果想要创建 Token ,你应该启动合约的总供应量,最好遵循 ERC20 标准
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。